package com.jxstjh.conch.common.domain;

import com.jxstjh.conch.common.dto.ContentModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Set;

/**
 * 消息发送任务结构
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TaskInfo {

    /**
     * 消息模板id
     */
    private Long messageTemplateId;

    /**
     * 业务id, 用于数据链路追踪
     * 生成逻辑详见 Support模块的TaskInfoUtil
     */
    private Long businessId;

    /**
     * 消息接收者集合
     */
    private Set<String> receiver;

    /**
     * 发送的id类型
     * 详见IdTypeEnum
     */
    private Integer idType;

    /**
     * 发送渠道
     */
    private Integer sendChannel;

    /**
     * 模板类型
     */
    private Integer templateType;

    /**
     * 消息类型
     */
    private Integer msgType;

    /**
     * 发送文案模型
     * message_template表存储的content是JSON(所有内容都会塞进去)
     * 不同的渠道要发送的内容不一样
     */
    private ContentModel contentModel;

    /**
     * 发送账号（邮件下可有多个发送账号、短信可有多个发送账号）
     */
    private Integer sendAccount;

    /**
     * 屏蔽类型
     */
    private Integer shieldType;
}